package main

import (
	"github.com/gin-gonic/gin"
	"testGin/controller"
	"testGin/middleware"
)

func main() {
	// 创建一个默认的服务器
	ginServer := gin.Default()
	// 允许所有跨域请求
	ginServer.Use(middleware.Cors())
	// 请求限流
	ginServer.Use(middleware.QPSLimit())

	// 获取两个视频
	ginServer.GET("/video", controller.GetTenVideo)
	// 获取所有类别
	ginServer.GET("/type", controller.Type)
	// 分享
	ginServer.POST("/share", controller.AddShare)
	// 登录
	ginServer.POST("/login", controller.Login)
	// 根据类别ID查询视频
	ginServer.GET("/type/:tid", controller.GetVideoByType)
	// 搜索视频
	ginServer.POST("/search", controller.Search)

	/*		注册		*/
	// 发送注册请求
	ginServer.POST("/register", controller.Register)
	// 校验邮箱验证码
	ginServer.POST("/verify/email", controller.VerifyEmail)
	// 发送邮箱验证码
	ginServer.POST("/send/email", controller.SendVerifyEmail)

	// 需要登录认证的接口
	loginGroup := ginServer.Group("", middleware.Authorization())
	{
		// 上传视频
		loginGroup.POST("/upload", controller.Upload)
		// 关闭推荐
		loginGroup.PUT("/recommend", controller.CloseIsCommend)
		// 获取用户上传的视频
		loginGroup.POST("/video/u", controller.GetVideoByUpload)
		// 自动推荐兴趣频道
		loginGroup.POST("/recommend", controller.NoType)
		// 修改关注的类型
		loginGroup.PUT("/type", controller.ChangeType)
		/*		收藏		*/
		// 收藏视频
		loginGroup.POST("/collect", controller.Collect)
		// 取消收藏
		loginGroup.DELETE("/collect", controller.CollectCancel)
		// 查询用户收藏列表
		loginGroup.POST("/collect/u", controller.CollectListByUid)
		/*		点赞		*/
		// 点赞视频
		loginGroup.POST("/love", controller.Love)
		// 取消点赞
		loginGroup.DELETE("/love", controller.LoveCancel)
		// 查询用户点赞列表
		loginGroup.POST("/love/u", controller.LoveListByUid)
	}
	// 启动服务
	ginServer.Run(controller.Host + ":" + controller.Port)
}
